package cn.imvc.app.models;

import java.util.List;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;

import cn.imvc.app.entities.VoucherTemplate;
import cn.imvc.app.repositories.VoucherTemplateRepository;
import cn.imvc.data.domain.ViewRequest;

@Service
public class VoucherTemplateModelImpl implements VoucherTemplateModel{
	
	@Autowired
	private VoucherTemplateRepository voucherTemplateRepository;
	
	
	public VoucherTemplate get(int id){
		return voucherTemplateRepository.findOne(id);
	}
	
	
	public Page<VoucherTemplate> find(ViewRequest viewRequest) {
		return (Page<VoucherTemplate>) voucherTemplateRepository.findAll();
	}

	public VoucherTemplate save(VoucherTemplate voucherTemplate) {
		
		VoucherTemplate voucherTemplate2 = voucherTemplateRepository.saveAndFlush(voucherTemplate);
		
		
		return voucherTemplate2;
	}
	public VoucherTemplate update(VoucherTemplate newVoucherTemplate) {
		VoucherTemplate loadVoucherTemplate=get(newVoucherTemplate.getId());
		BeanUtils.copyProperties(newVoucherTemplate, loadVoucherTemplate, new String[]{"id"});
		
		return voucherTemplateRepository.saveAndFlush(loadVoucherTemplate);
	}
	public void delete(int id) {
		voucherTemplateRepository.delete(id);
		
	}
	public void deleteBatch(int[] ids) {

		for (int id : ids) {
			delete(id);
		}
		
	}


	@Override
	public VoucherTemplate findByCode(String code) {
		
		return voucherTemplateRepository.findByCodeAndState(code,(byte)1);
	}

}
